package com.openlogic.common.logic.node.parse.node;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;

/**
* @ClassName: SwitchNodeParaseHandler
* @Description: 分支节点解析处理器
* @author weiyongpeng
* @date 2024年7月14日 下午2:49:12
 */
public class SwitchNodeParaseHandler extends BaseSubNodeParseHandler {

	@Override
	public List<List<?>> getElementByNode(JSONObject tmpObject, List<List<?>> resultList, Map<String, String> areMap,
			JSONObject lineObject) {
		List<Object> list=new ArrayList<Object>();
		list.add(tmpObject.get("id").toString()); // 获取id
		String data=tmpObject.get("data")==null?"":tmpObject.get("data").toString();
		JSONObject object = null;
		if(!"".equals(data)){
			object = JSON.parseObject(data);						
		}			
		list.add(object.get("text") == null ? "" : object.get("text")); // 获取name	
		list.add(tmpObject.get("type").toString()); // 获取belongType 所属域的类型
		list.add(getSwitchDataInfo(object));
		list.add("");
		list.add(tmpObject.get("type").toString()); // 获取type
		list.add(false);
		list.add(getlistMap(lineObject,tmpObject.get("id").toString()));//添加该节点对应向下线路的id
//		list.add(tmpObject.get("dataBind") == null ? Maps.newHashMap() : getDataBind(tmpObject.get("dataBind").toString())); // 获取节点绑定变量的数据
		resultList.add(list);
		return resultList;
	}

	/**
	* 描述：获取分支节点数据 拆分switch节点的data信息，分为text，value，type
	* @Title: getSwitchDataInfo
	* @param object
	* @return
	* @author weiyongpeng
	* @date  2024年7月15日 上午9:25:01
	 */
	private Object getSwitchDataInfo(JSONObject tmpObject) {
		Map<String, String> map = new HashMap<String, String>();
		
		String value = tmpObject.get("value") == null ? "" : tmpObject.get("value").toString();
		map.put("value", value);

		String type = tmpObject.get("type") == null ? "" : tmpObject.get("type").toString();
		map.put("type", type);

		String text = tmpObject.get("text") == null ? "" : tmpObject.get("text").toString();
		map.put("text", text);

		return map;
	}

}
